package com.zhou.allocation;

import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
import com.baomidou.mybatisplus.extension.plugins.inner.OptimisticLockerInnerInterceptor;
import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringBootConfiguration;
import org.springframework.context.annotation.Bean;
import org.springframework.transaction.annotation.EnableTransactionManagement;

/**
 * @description:mybatis-plus配置
 * @author:hutao
 * @mail:hutao_2017@aliyun.com
 * @date:2022年2月19日 下午3:54:55
 */
@SpringBootConfiguration
@MapperScan(basePackages = "com.**.mapper")
@EnableTransactionManagement
public class MybatisPlusConfig {
	/**
	 * @description:配置mybatis使用分页时，采用乐观锁和达梦数据库
	 * @author:hutao
	 * @mail:hutao_2017@aliyun.com
	 * @date:2022年2月19日 下午3:54:55
	 */
    @Bean
    public MybatisPlusInterceptor mybatisPlusInterceptor() {
        MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
        //乐观锁
        interceptor.addInnerInterceptor(new OptimisticLockerInnerInterceptor());
        //分页锁   不同数据库使用不同的配置
        interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));
        return interceptor;
    }
}
